# 1、用户系统 数据 存入数据库
# 2、用户id 自动生成，唯一
# 密码要求(新增、修改)：
# 1.长度超过8位
# 2.包括大、小写字母.数字.其它,以上四种至少三种
# 用户名 长度 必须在6-20位之间，删除用户，必须校验用户密码
# 修改密码，需要输入原密码与新密码，且新密码不能与旧密码一致

import pymysql
import time
import random
def make_userid():
    uid = int(time.time())
    before = random.randint(11,99)
    after = random.randint(10,99)
    uid = f"{before}{uid}{after}"
    return uid


def check_pwd(pwd):
    if len(pwd) <= 8:
        return False
    else:
        a = b = c = d = 0
        for i in pwd:
            if i.isdigit():
                a = 1
            elif i.isupper():
                b = 1
            elif i.islower():
                c = 1
            else:
                d = 1
        if a+b+c+d < 3:
            return False
        else:
            return True

def mydb(sql):
    db = pymysql.connect(user='test',password='test123',
                    host='192.168.0.125',port=3306,
                    database='userinfo',charset='utf8mb4')
    cs = db.cursor()
    cs.execute(sql)
    data = cs.fetchall()
    db.commit()
    db.close()
    return data

msg = """欢迎来到xxx 用户系统，请输入您的操作指令
0 >>> 退出
1 >>> 注册
2 >>> 登录
3 >>> 修改密码
4 >>> 删除用户"""
print(msg)







# 不存在，输入密码
# 判断是否合法
# 进行新增

while True:
    flag = input('请输入您的指令：')

    if flag == '0':
        break
    elif flag == '1':
        # 用户输入用户名
        username = input('请输入用户名：')
        if 6 <= len(username) <= 20:
            data = mydb(f"select * from user where uname = '{username}';")
            if len(data) == 0:
                # 没有该用户
                password = input('请输入密码：')
                if check_pwd(pwd=password):
                    # 合法 就写入数据库
                    uid = make_userid()
                    mydb(f"insert into user values({uid},'{username}','{password}')")
                else:
                    print('密码不合法。。。')
            else:
                print('该用户已存在')
        else:
            print('用户名不合法。。。。')
    elif flag == '2':
        登录
    elif flag == '3':
        修改密码
    elif flag == '4':
        删除用户
    else:
        print('输入有误')